﻿using System;
using System.Collections.Generic;
using System.Text;
using SDMX_Common = SDMX_ML.Framework.Common;

namespace SDMX_ML.Framework.Compact
{
    public class DataSetType
    {
        //Attributes
        private string _keyfamilyuri;
        private SDMX_Common.IDType _datasetid;
        private SDMX_Common.IDType _dataproviderschemeagencyid;
        private SDMX_Common.IDType _dataproviderschemeid;
        private SDMX_Common.IDType _dataproviderid;
        private SDMX_Common.IDType _dataflowagencyid;
        private SDMX_Common.IDType _dataflowid;
        private SDMX_Common.EnumDataSetAction? _action;
        private SDMX_Common.TimePeriodType _reportingBeginDate;
        private SDMX_Common.TimePeriodType _publicationPeriod;
        private SDMX_Common.TimePeriodType _reportingEndDate;
        private SDMX_Common.TimePeriodType _validFromDate;
        private SDMX_Common.TimePeriodType _validToDate;
        private string _publicationYear;
        private List<CompactAttribute> _compactAttributes;
        private List<CompactElement> _compactElements;

        public DataSetType()
        {
            _compactElements = new List<CompactElement>();
            _compactAttributes = new List<CompactAttribute>();
        }

        public List<CompactAttribute> CompactAttributes
        {
            get { return _compactAttributes; }
            set { _compactAttributes = value; }
        }

        public List<CompactElement> CompactElements
        {
            get { return _compactElements; }
            set { _compactElements = value; }
        }

        public SDMX_Common.TimePeriodType ReportingBeginDate
        {
            get { return _reportingBeginDate; }
            set { _reportingBeginDate = value; }
        }

        public SDMX_Common.TimePeriodType ReportingEndDate
        {
            get { return _reportingEndDate; }
            set { _reportingEndDate = value; }
        }

        public SDMX_Common.TimePeriodType ValidFromDate
        {
            get { return _validFromDate; }
            set { _validFromDate = value; }
        }

        public SDMX_Common.TimePeriodType ValidToDate
        {
            get { return _validToDate; }
            set { _validToDate = value; }
        }

        public string PublicationYear
        {
            get { return _publicationYear; }
            set { _publicationYear = value; }
        }

        public SDMX_Common.TimePeriodType PublicationPeriod
        {
            get { return _publicationPeriod; }
            set { _publicationPeriod = value; }
        }

        public SDMX_Common.EnumDataSetAction? Action
        {
            get { return _action; }
            set { _action = value; }
        }

        public SDMX_Common.IDType DataflowID
        {
            get { return _dataflowid; }
            set { _dataflowid = value; }
        }

        public SDMX_Common.IDType DataflowAgencyID
        {
            get { return _dataflowagencyid; }
            set { _dataflowagencyid = value; }
        }

        public SDMX_Common.IDType DataProviderId
        {
            get { return _dataproviderid; }
            set { _dataproviderid = value; }
        }

        public SDMX_Common.IDType DataProviderSchemeId
        {
            get { return _dataproviderschemeid; }
            set { _dataproviderschemeid = value; }
        }

        public SDMX_Common.IDType DataproviderSchemeAgencyId
        {
            get { return _dataproviderschemeagencyid; }
            set { _dataproviderschemeagencyid = value; }
        }

        public SDMX_Common.IDType DataSetID
        {
            get { return _datasetid; }
            set { _datasetid = value; }
        }

        public string KeyFamilyURI
        {
            get { return _keyfamilyuri; }
            set { _keyfamilyuri = value; }
        }


        
        
    }
}
